// Comments are in utf8 encoding
package com.acme;


public class Test {
	public static void main(String[] args) {
		int v1 = 3;
//		byte v2 = v1;		<- Неверно! Преобразование к типу меньшей емкости
        byte v2 = (byte) v1;
		System.out.println(v2);  // выводится 3
		v1 = 256;
//		byte v3 = v1;       <- Неверно! Преобразование к типу меньшей емкости

        byte v3 = (byte) v1;      // При присваивании останутся только младшие 8 бит,
		System.out.println(v3);    // поэтому будет выведено число 0
		int v4 = 's';
		System.out.println(v4); // Выводится 115, поскольку char преобразовывается к int и получается код символа
		
		byte v5 = 115;
		if (v5 == 's') {   // Перед сравнением происходит неявное расширяющее преобразование byte и char к int
			System.out.println("Equals");
		}
		
		System.out.println((double) 4);   // Будет выведено 4.0, поскольку int перед выводом преобразован к double
		
		double d = 5;
		System.out.println(d + 1);   // Будет выведено 6.0, поскольку результат сложения int и double имеет тип double
		
//		boolean b = v4;   <- Неверно! Преобразование int к bool невозможно
		
//		short v6 = "short";   <- Неверно! Числу нельзя присвоить строку
		
//		float v7 = 3.67;    <- Неверно! По умолчанию вещественная константа имеет тип double, который нельзя неявно приводить к float
		
		float v9 = 3;  // Нет ошибки компиляции, поскольку int можно приводить к вещественным типам
		
//		int v8 = v7;      <-  Неверно, нельзя преобразовывать int к float
		
//		int array[] = new double["27"];   <- Неверно, в квадратных скобках должен быть размер массива (int), а не строка, к тому же объявлен массив int, а оператор new создает массив double
		
	}
}
